home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / ams__l~1.zoo / src / tcw.icc < prev    next >
Encoding:
Text File  |  1993-09-05  |  5.3 KB  |  310 lines

  1.     asm("
  2.         .data
  3.     TCWipe:
  4.         .long TCWQ,TCW1,TCW2,TCW3,TCW4,TCW5,TCW6,TCW7
  5.         .long TCW8,TCW9,TCW10,TCW11,TCW12,TCW13,TCW14,TCW15
  6.         .long TCW16,TCW17,TCW18,TCW19,TCW20,TCW21,TCW22,TCWCMD
  7.         .long TCW24,TCW25,TCW26,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD
  8.         .long TCW32,TCW33,TCW34,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD
  9.         .long TCW40,TCW41,TCW42,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD
  10.         .long TCW48,TCW49,TCW50,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD
  11.         .long TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD,TCWCMD
  12.  
  13.         .text
  14.  
  15.         moveml    d2-d7/a2-a6,sp@-
  16.         movel    %1@+,d7
  17.  
  18.     TCWCMD:
  19.         movel    #TCWipe,a2
  20.         movew    %0@+,d0
  21.         aslw    #2,d0
  22.         movel        a2@(d0:w),a0
  23.         jmp        a0@
  24.  
  25.     TCW1:
  26.         movel    %0@+,a6
  27.         movew    %1@+,d0
  28.         movew    d0,a6@(d7:l)
  29.         addl    #2,%0
  30.         movew    %0@+,d0
  31.         aslw    #2,d0
  32.         movel    a2@(d0:w),a0
  33.         jmp        a0@
  34.  
  35.     TCW2:
  36.         movel    %0@+,a6
  37.         movel    %1@+,d0
  38.         movel    d0,a6@(d7:l)
  39.         addl    #4,%0
  40.         movew    %0@+,d0
  41.         aslw    #2,d0
  42.         movel    a2@(d0:w),a0
  43.         jmp        a0@
  44.  
  45.     TCW3:
  46.         movel    %0@+,a6
  47.         movel    %1@+,d0
  48.         movel    d0,a6@(d7:l)
  49.         movew    %1@+,d0
  50.         movew    d0,a6@(4,d7:l)
  51.         addl    #6,%0
  52.         movew    %0@+,d0
  53.         aslw    #2,d0
  54.         movel    a2@(d0:w),a0
  55.         jmp        a0@
  56.  
  57.     TCW4:
  58.         movel    %0@+,a6
  59.         movel    %1@+,d0
  60.         movel    d0,a6@(d7:l)
  61.         movel    %1@+,d0
  62.         movel    d0,a6@(4,d7:l)
  63.         addl    #8,%0
  64.         movew    %0@+,d0
  65.         aslw    #2,d0
  66.         movel    a2@(d0:w),a0
  67.         jmp        a0@
  68.  
  69.     TCW5:
  70.         movel    %0@+,a6
  71.         movel    %1@+,d0
  72.         movel    %1@+,d1
  73.         movew    %1@+,d2
  74.         movel    d0,a6@(d7:l)
  75.         movel    d1,a6@(4,d7:l)
  76.         movew    d2,a6@(8,d7:l)
  77.         addl    #10,%0
  78.         movew    %0@+,d0
  79.         aslw    #2,d0
  80.         movel    a2@(d0:w),a0
  81.         jmp        a0@
  82.     
  83.     TCW6:
  84.         movel    %0@+,a6
  85.         moveml    %1@+,d0-d1/d2
  86.         moveml    d0-d1/d2,a6@(d7:l)
  87.         addl    #12,%0
  88.         movew    %0@+,d0
  89.         aslw    #2,d0
  90.         movel    a2@(d0:w),a0
  91.         jmp        a0@
  92.  
  93.     
  94.     TCW7:
  95.         movel    %0@+,a6
  96.         movew    %1@+,d0
  97.         movew    d0,a6@(d7:l)
  98.         moveml    %1@+,d0-d1/d2
  99.         moveml    d0-d1/d2,a6@(2,d7:l)
  100.         addl    #14,%0
  101.         movew    %0@+,d0
  102.         aslw    #2,d0
  103.         movel    a2@(d0:w),a0
  104.         jmp        a0@
  105.  
  106.     
  107.     TCW8:
  108.         movel    %0@+,a6
  109.         moveml    %1@+,d0-d1/d2/d3
  110.         moveml    d0-d1/d2/d3,a6@(d7:l)
  111.         addl    #16,%0
  112.         movew    %0@+,d0
  113.         aslw    #2,d0
  114.         movel    a2@(d0:w),a0
  115.         jmp        a0@
  116.  
  117.     
  118.     TCW9:
  119.         movel    %0@+,a6
  120.         movew    %1@+,d0
  121.         movew    d0,a6@(d7:l)
  122.         moveml    %1@+,d0-d1/d2/d3
  123.         moveml    d0-d1/d2/d3,a6@(2,d7:l)
  124.         addl    #18,%0
  125.         movew    %0@+,d0
  126.         aslw    #2,d0
  127.         movel    a2@(d0:w),a0
  128.         jmp        a0@
  129.  
  130.     
  131.     TCW10:
  132.         movel    %0@+,a6
  133.         moveml    %1@+,d0-d1/d2/d3/d4
  134.         moveml    d0-d1/d2/d3/d4,a6@(d7:l)
  135.         addl    #20,%0
  136.         movew    %0@+,d0
  137.         aslw    #2,d0
  138.         movel    a2@(d0:w),a0
  139.         jmp        a0@
  140.  
  141.     
  142.     TCW11:
  143.         movel    %0@+,a6
  144.         movew    %1@+,d0
  145.         movew    d0,a6@(d7:l)
  146.         moveml    %1@+,d0-d1/d2/d3/d4
  147.         moveml    d0-d1/d2/d3/d4,a6@(2,d7:l)
  148.         addl    #22,%0
  149.         movew    %0@+,d0
  150.         aslw    #2,d0
  151.         movel    a2@(d0:w),a0
  152.         jmp        a0@
  153.  
  154.     
  155.     TCW12:
  156.         movel    %0@+,a6
  157.         moveml    %1@+,d0-d1/d2/d3/d4/d5
  158.         moveml    d0-d1/d2/d3/d4/d5,a6@(d7:l)
  159.         addl    #24,%0
  160.         movew    %0@+,d0
  161.         aslw    #2,d0
  162.         movel    a2@(d0:w),a0
  163.         jmp        a0@
  164.  
  165.     
  166.     TCW13:
  167.         movel    %0@+,a6
  168.         movew    %1@+,d0
  169.         movew    d0,a6@(d7:l)
  170.         moveml    %1@+,d0-d1/d2/d3/d4/d5
  171.         moveml    d0-d1/d2/d3/d4/d5,a6@(2,d7:l)
  172.         addl    #26,%0
  173.         movew    %0@+,d0
  174.         aslw    #2,d0
  175.         movel    a2@(d0:w),a0
  176.         jmp        a0@
  177.  
  178.     
  179.     TCW14:
  180.         movel    %0@+,a6
  181.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6
  182.         moveml    d0-d1/d2/d3/d4/d5/d6,a6@(d7:l)
  183.         addl    #28,%0
  184.         movew    %0@+,d0
  185.         aslw    #2,d0
  186.         movel    a2@(d0:w),a0
  187.         jmp        a0@
  188.  
  189.     
  190.     TCW15:
  191.         movel    %0@+,a6
  192.         movew    %1@+,d0
  193.         movew    d0,a6@(d7:l)
  194.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6
  195.         moveml    d0-d1/d2/d3/d4/d5/d6,a6@(2,d7:l)
  196.         addl    #30,%0
  197.         movew    %0@+,d0
  198.         aslw    #2,d0
  199.         movel    a2@(d0:w),a0
  200.         jmp        a0@
  201.  
  202.     
  203.     TCW16:
  204.         movel    %0@+,a6
  205.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0
  206.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,a6@(d7:l)
  207.         addl    #32,%0
  208.         movew    %0@+,d0
  209.         aslw    #2,d0
  210.         movel    a2@(d0:w),a0
  211.         jmp        a0@
  212.  
  213.     
  214.     TCW17:
  215.         movel    %0@+,a6
  216.         movew    %1@+,d0
  217.         movew    d0,a6@(d7:l)
  218.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0
  219.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,a6@(2,d7:l)
  220.         addl    #34,%0
  221.         movew    %0@+,d0
  222.         aslw    #2,d0
  223.         movel    a2@(d0:w),a0
  224.         jmp        a0@
  225.  
  226.     
  227.     TCW18:
  228.         movel    %0@+,a6
  229.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0/a1
  230.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,a6@(d7:l)
  231.         addl    #36,%0
  232.         movew    %0@+,d0
  233.         aslw    #2,d0
  234.         movel    a2@(d0:w),a0
  235.         jmp        a0@
  236.  
  237.     
  238.     TCW19:
  239.         movel    %0@+,a6
  240.         movew    %1@+,d0
  241.         movew    d0,a6@(d7:l)
  242.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0/a1
  243.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,a6@(2,d7:l)
  244.         addl    #38,%0
  245.         movew    %0@+,d0
  246.         aslw    #2,d0
  247.         movel    a2@(d0:w),a0
  248.         jmp        a0@
  249.  
  250.     
  251.     TCW20:
  252.         movel    %0@+,a6
  253.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  254.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,a6@(d7:l)
  255.         addl    #40,%0
  256.         movel    #TCWipe,a2
  257.         movew    %0@+,d0
  258.         aslw    #2,d0
  259.         movel        a2@(d0:w),a0
  260.         jmp        a0@
  261.  
  262.     
  263.     TCW21:
  264.         movel    %0@+,a6
  265.         movew    %1@+,d0
  266.         movew    d0,a6@(d7:l)
  267.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  268.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,a6@(2,d7:l)
  269.         addl    #42,%0
  270.         movel    #TCWipe,a2
  271.         movew    %0@+,d0
  272.         aslw    #2,d0
  273.         movel        a2@(d0:w),a0
  274.         jmp        a0@
  275.  
  276.     
  277.     TCW22:
  278.         movel    %0@+,a6
  279.         moveml    %1@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3
  280.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3,a6@(d7:l)
  281.         addl    #44,%0
  282.         movel    #TCWipe,a2
  283.         movew    %0@+,d0
  284.         aslw    #2,d0
  285.         movel        a2@(d0:w),a0
  286.         jmp        a0@
  287.  
  288.     
  289.     TCW24:
  290.     TCW25:
  291.     TCW26:
  292.     TCW32:
  293.     TCW33:
  294.     TCW34:
  295.     TCW40:
  296.     TCW41:
  297.     TCW42:
  298.     TCW48:
  299.     TCW49:
  300.     TCW50:
  301.     TCWQ:
  302.         moveml    sp@+,d2-d7/a2-a6
  303.     " : // No outputs
  304.         : // Inputs
  305.         "a" (Data),
  306.         "a" (Store)
  307.         : "d0","d1","d2","d3","d4","d5","d6", "d7",
  308.             "a0","a1","a2","a3","a6"
  309.     );
  310.